package com.bm.connect.service;

import org.springframework.web.socket.WebSocketSession;

import java.io.IOException;

public interface IchatService {
    /**
     * 添加新的 WebSocket 会话，并关联用户名。
     * @param session WebSocket会话
     * @param username 用户名
     */
    void addSession(WebSocketSession session, String username);

    /**
     * 移除 WebSocket 会话。
     * @param session WebSocket会话
     */
    void removeSession(WebSocketSession session);

    /**
     * 广播消息给所有客户端。
     * @param sender 发送消息的客户端会话
     * @param message 消息内容
     * @throws IOException 如果发送消息时发生IO异常
     */
    void broadcastMessage(WebSocketSession sender, String message) throws IOException;

    /**
     * 发送私聊消息给指定客户端。
     * @param sender 发送消息的客户端会话
     * @param receiverUsername 接收消息的客户端用户名
     * @param message 消息内容
     * @throws IOException 如果发送消息时发生IO异常
     */
    void sendPrivateMessage(WebSocketSession sender, String receiverUsername, String message) throws IOException;
}
